package com.yunhe.policyfulfillment.policyful.service;

import com.github.stuxuhai.jpinyin.PinyinException;
import com.yunhe.common.exception.ArgumentErrorException;
import com.yunhe.common.model.mybatis.PageResult;
import com.yunhe.policyfulfillment.policyful.domain.PolicyInfoMatter;
import com.yunhe.policyfulfillment.policyful.model.*;

import java.util.List;


/**
 * @ClassName IPolicyInfoMatterService
 * @Description TODO
 * @Author HeTao
 * @Date 2021/7/26 10:47
 * @Version 1.0
 **/
public interface IPolicyInfoMatterService {

    /**
     * 删除
     */
    void deletePolicyInfoMatter(long ids);

    PageResult findMatterByCondition(PortalMatterQueryCondition portalMatterQueryCondition);

    int createPolicyInfoMatter(PolicyInfoMatter policyInfoMatter) throws ArgumentErrorException, PinyinException;

    int updatePolicyInfoMatter(PolicyInfoMatter policyInfoMatter) throws ArgumentErrorException, PinyinException;

    PolicyInfoMatter findPolicyInfoMatterById(long id);

    void setPublishStatus(PublishStatus publishStatus);

    PageResult findPolicyInfoMatterByQueryCondition(PolicyInfoMatterQueryCondition policyInfoMatterQueryCondition) throws ArgumentErrorException;

    MatterStatisticsVo getMatterStatistics();

    void updateMatterAccessCountById(long id);

    /**
     * 定时发布事项
     */
    void publishTimedMatter();

    void publishTimedUpdateMatterStatus();

    void updateMatterDeclaredQuantityById(long applyMatterId);

    /**
     * @Description 首页统计分析
     * @Param
     * @Return List<IndexStatistics>
     * @Date 2021/9/17 15:37
     */
    List<IndexStatistics> getIndexStatistics();

    PageResult findPolicyInfoMatterByQueryConditionForPortal(PolicyInfoMatterQueryCondition policyInfoMatterQueryCondition);
}
